package com.ssy.lingxi.member.merchant.model.vo.lifecycle.request;

import com.ssy.lingxi.member.merchant.api.handler.annotation.DateTimeStringFormatAnnotation;
import com.ssy.lingxi.member.merchant.model.vo.basic.request.FileUploadVO;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 会员投诉与建议新增VO
 * @author yzc
 * @version 2.0.0
 * @date 2021/5/17
 */
public class MemberComplaintUpperAddVO implements Serializable {
    private static final long serialVersionUID = -7265522955426342638L;

    /**
     * 业务类型 1-投诉 2-建议
     */
    @NotNull(message = "业务类型不能为空")
    private Integer type;

    /**
     * 事件分类 1-关于产品 2-关于订单 3-关于配送 4-关于售后 5-关于服务 6-其他
     */
    @NotNull(message = "事件分类不能为空")
    private Integer classify;

    /**
     * 事件主题
     */
    @NotBlank(message = "事件主题不能为空")
    private String subject;

    /**
     * 下级会员id
     */
    private Long subMemberId;

    /**
     * 下级角色id
     */
    private Long subRoleId;

    /**
     * 提交人用户id
     */
    private Long byUserId;

    /**
     * 提交人用户编辑名称
     */
    private String byUserEditName;

    /**
     * 提交人用户编辑手机
     */
    private String byUserEditPhone;

    /**
     * 事件时间，格式为yyyy-MM-dd HH:mm:ss
     */
    @DateTimeStringFormatAnnotation(message = "事件时间格式错误")
    private String eventTime;

    /**
     * 事件描述
     */
    @NotBlank(message = "事件描述不能为空")
    private String eventDesc;

    /**
     * 事件建议
     */
    private String eventSuggest;

    /**
     * 事件附件
     */
    private List<FileUploadVO> attachments;

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getClassify() {
        return classify;
    }

    public void setClassify(Integer classify) {
        this.classify = classify;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public Long getSubMemberId() {
        return subMemberId;
    }

    public void setSubMemberId(Long subMemberId) {
        this.subMemberId = subMemberId;
    }

    public Long getSubRoleId() {
        return subRoleId;
    }

    public void setSubRoleId(Long subRoleId) {
        this.subRoleId = subRoleId;
    }

    public Long getByUserId() {
        return byUserId;
    }

    public void setByUserId(Long byUserId) {
        this.byUserId = byUserId;
    }

    public String getByUserEditName() {
        return byUserEditName;
    }

    public void setByUserEditName(String byUserEditName) {
        this.byUserEditName = byUserEditName;
    }

    public String getByUserEditPhone() {
        return byUserEditPhone;
    }

    public void setByUserEditPhone(String byUserEditPhone) {
        this.byUserEditPhone = byUserEditPhone;
    }

    public String getEventTime() {
        return eventTime;
    }

    public void setEventTime(String eventTime) {
        this.eventTime = eventTime;
    }

    public String getEventDesc() {
        return eventDesc;
    }

    public void setEventDesc(String eventDesc) {
        this.eventDesc = eventDesc;
    }

    public String getEventSuggest() {
        return eventSuggest;
    }

    public void setEventSuggest(String eventSuggest) {
        this.eventSuggest = eventSuggest;
    }

    public List<FileUploadVO> getAttachments() {
        return attachments;
    }

    public void setAttachments(List<FileUploadVO> attachments) {
        this.attachments = attachments;
    }
}
